package cn.tedu.flower.manage.content.dao.persist.repository;

import cn.tedu.flower.manage.common.pojo.vo.PageData;
import cn.tedu.flower.manage.content.pojo.entity.Member;
import cn.tedu.flower.manage.content.pojo.vo.MemberListItemVO;
import cn.tedu.flower.manage.content.pojo.vo.MemberStandardVO;

import java.util.Collection;
import java.util.List;

public interface IMemberRepository {
    /**
     * 插入会员信息
     * @param member 会员信息
     * @return 受影响行数
     */
    int insert(Member member);

    /**
     * 删除会员信息
     * @param id 会员id
     * @return 受影响行数
     */
    int deleteById(Long id);

    /**
     * 根据若干id删除会员数据
     * @return 受影响行数
     */
    int deleteByIds(Collection<Long> idList);

    /**
     * 根据id修改会员信息
     * @param member 封装会员id和新会员信息
     * @return 受影响行数
     */
    int update(Member member);

    /**
     * 统计会员表中的会员数量
     * @return 返回会员表中数据的数量
     */
    int count();

    /**
     * 根据会员id查询会员详情
     * @param id 会员id
     * @return 匹配会员的数据详情,如果没有匹配的数据,则返回null
     */
    MemberStandardVO selectById(Long id);
    /**
     * 根据用户名查询会员信息
     * @param username 会员用户名
     * @return 匹配的会员信息,如果没有匹配的数据,则返回null
     */
    MemberStandardVO selectByUsername(String username);
    /**
     * 查询全部会员信息
     * @return 返回所有会员的信息
     */
    PageData<MemberListItemVO> selectAll(Integer pageNum, Integer pageSize);

    /**
     * 根据昵称查询会员信息
     * @param nickname 会员的昵称
     * @return 匹配的会员信息,如果没有匹配的数据,则返回null
     */
    MemberStandardVO selectByNickname(String nickname);





}
